import router from "./my_router"
import ElementUI from "element-ui";

// // 必须登录才能访问的
const is_login = [
    '/user_manage',
    '/case_manage',
    '/version',
    '/regression',
    '/police',
    '/log_manage',
]

router.beforeEach((to, from, next) => {
    // 前往登录页面
    if (to.path == '/login') return next();

    // 获取存储localStorage的token
    let token = window.localStorage.getItem('token');
    // 如果有token
    if (token) {
        // 获取存储token的开始时间
        const tokenStartTime = window.localStorage.getItem('tokenStartTime');
        // 后台的token有效时间30min 内未操作就过期
        const timeOver = 1800 * 1000;
        // 当前时间
        let date = new Date().getTime();
        // 如果大于说明是token过期了
        if (date - tokenStartTime > timeOver) {
            // 注意要import element的Message组件
            ElementUI.Message({
                dangerouslyUseHTMLString: true,
                message: '<div><p>身份已失效！！！</p ><p><i class="el-icon-loading"></i>正在前往登录页面...</p ></div>',
                type: 'warning'
            });
            window.localStorage.removeItem("token");
            window.localStorage.removeItem("username");
            window.localStorage.removeItem("nickname");
            window.localStorage.removeItem("surname");
            window.location.href = '/login';
            return false
        }
        // 没有过期通过, 更新token时间(一直在使用的情况下不过期)
        window.localStorage.setItem('tokenStartTime', date);
        next()
    } else {
        // 没有token, 浏览的需要登录权限就跳转登录页面
        let flag = is_login.findIndex(item => item === to.path);
        if (flag !== -1) {
            ElementUI.Message({
                dangerouslyUseHTMLString: true,
                message: '<div><p>请先登录账户在访问!</p ><p><i class="el-icon-loading"></i>正在前往登录页面...</p ></div>',
                type: 'warning'
            });
            window.location.href = '/login';
            return false
        }
        // 不需要继续访问
        next()
    }
});

export default router